const driver = window.driver.js.driver;
let stream;
let mediaRecorder;
let blobs;
let blob;
let url;
let videoTracks;
let video;
let a;
let driverObj;
let state
let loadPart = `<div class="bg"></div><div class="head"><div class="topBox"><a href="https://github.com/Allensht/SHTRec/" class="github-corner" aria-label="View source on GitHub"><svg width="80"
height="80" viewBox="0 0 250 250"
style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;"
aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path
    d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
    fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path
    d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
    fill="currentColor" class="octo-body"></path></svg></a><ul class="ui"><li><a href="/SHTRec/"><img src="https://pic.imgdb.cn/item/65178840c458853aef354ab3.png" alt=""><span>SHTRec</span></a></li></ul></div></div><div class="main"><div class="container"><span style="--d: 7"></span><span style="--d: 6"></span><span style="--d: 5"></span><span style="--d: 4"></span><span style="--d: 3"></span><span style="--d: 2"></span><span style="--d: 1"></span><span style="--d: 0"></span><span style="--d: 1"></span><span style="--d: 2"></span><span style="--d: 3"></span><span style="--d: 4"></span><span style="--d: 5"></span><span style="--d: 6"></span><span style="--d: 7"></span></div></div><div class="downBtn"><button class="stop" onclick="stop()">停止</button><button class="replay" onclick="replay()">播放</button><button class="download" onclick="download()">下载</button></div></div>`;
let donePart = `<div class="bg"></div><div class="head"><div class="topBox"><a href="https://github.com/Allensht/SHTRec/" class="github-corner" aria-label="View source on GitHub"><svg width="80"
height="80" viewBox="0 0 250 250"
style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;"
aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path
    d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
    fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path
    d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
    fill="currentColor" class="octo-body"></path></svg></a><ul class="ui"><li><a href="/SHTRec/"><img src="https://pic.imgdb.cn/item/65178840c458853aef354ab3.png" alt=""><span>SHTRec</span></a></li></ul></div></div><div class="main"><div class="logScr"><span class="stopLog">录制完毕！</span></div></div><div class="downBtn"><button class="stop" onclick="stop()">停止</button><button class="replay" onclick="replay()">播放</button><button class="download" onclick="download()">下载</button></div></div>`;
let videoPart = `<div class="bg"></div><div class="head"><div class="topBox"><a href="https://github.com/Allensht/SHTRec/" class="github-corner" aria-label="View source on GitHub"><svg width="80"
height="80" viewBox="0 0 250 250"
style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;"
aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path
    d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
    fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path
    d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
    fill="currentColor" class="octo-body"></path></svg></a><ul class="ui"><li><a href="/SHTRec/"><img src="https://pic.imgdb.cn/item/65178840c458853aef354ab3.png" alt=""><span>SHTRec</span></a></li></ul></div></div><div class="main"><div class="scr"><video class="vid" autoplay controls width="800px" height="280px"></video></div></div><div class="downBtn"><button class="stop" onclick="stop()">停止</button><button class="replay" onclick="replay()">播放</button><button class="download" onclick="download()">下载</button></div></div>`;
let startPart = `<div class="bg"></div><div class="head"><div class="topBox"><a href="https://github.com/Allensht/SHTRec/" class="github-corner" aria-label="View source on GitHub"><svg width="80"
height="80" viewBox="0 0 250 250"
style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;"
aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path
    d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
    fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path
    d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
    fill="currentColor" class="octo-body"></path></svg></a><ul class="ui"><li><a href="/SHTRec/"><img src="https://pic.imgdb.cn/item/65178840c458853aef354ab3.png" alt=""><span>SHTRec</span></a></li></ul></div></div><div class="main"></div>`;
let aPart = `<div class="bg"></div><div class="head"><div class="topBox"><a href="https://github.com/Allensht/SHTRec/" class="github-corner" aria-label="View source on GitHub"><svg width="80"
    height="80" viewBox="0 0 250 250"
    style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;"
    aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path
        d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
        fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path
        d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
        fill="currentColor" class="octo-body"></path></svg></a><ul class="ui"><li><a href="/SHTRec/"><img src="https://pic.imgdb.cn/item/65178840c458853aef354ab3.png" alt=""><span>SHTRec</span></a></li></ul></div></div><div class="main"><div class="btn"><button onclick="yes()" class="startBtn">我学会了</button><button onclick="no()" class="startBtn">我没学会</button></div></div>`;


function start() {
    state = localStorage.getItem("state");
    if (state !== "yes") {
        teach();
    }else {
        yes();
    }
}


function teach() {
    driverObj = driver({
        showProgress: true,
        allowClose: false,
        overlayColor: 'white',
        nextBtnText: '下一步',
        prevBtnText: '上一步',
        doneBtnText: '完成',
        steps: [
            {
                popover: {
                    title: '使用教程',
                }
            },
            {
                popover: {
                    title: '第一步',
                    description: '选择您要共享的内容',
                }
            },
            {
                popover: {
                    title: '第二步',
                    description: '选择是否要共享音频',
                }
            },
            {
                popover: {
                    title: '第三步',
                    description: '点击共享',
                }
            }
        ]
    });
    document.body.innerHTML = aPart;
    driverObj.drive();
    localStorage.setItem("state", "yes")
}


function yes() {
    record();
}


function no() {
    start();
}


function record() {
    navigator.mediaDevices.getDisplayMedia({
        audio: true,
        video: true
    })
        .then(function (s) {
            stream = s;
            mediaRecorder = new MediaRecorder(stream, {
                mimeType: 'video/webm'
            });
            blobs = [], mediaRecorder;
            videoTracks = stream.getVideoTracks();
            if (videoTracks.length > 0) {
                mediaRecorder.start(100);
                mediaRecorder.ondataavailable = (e) => {
                    blobs.push(e.data);
                };
                document.body.innerHTML = loadPart;
            }
        })

        .catch(function (error) {
            console.log(error);
        });
}


function stop() {
    if (stream) {
        stream.getTracks().forEach(track => track.stop());
    }
    document.body.innerHTML = donePart;
}


function replay() {
    blob = new Blob(blobs, {
        type: 'video/webm'
    });
    document.body.innerHTML = videoPart;
    video = document.querySelector(".vid");
    video.src = URL.createObjectURL(blob);
}


function download() {
    blob = new Blob(blobs, {
        type: 'video/webm'
    });
    url = URL.createObjectURL(blob);
    a = document.createElement('a');
    a.href = url;
    a.download = 'record.webm';
    a.style.display = 'none';
    a.click();
}
